/*
 * AgendaView.java
 */

package agenda;

import org.jdesktop.application.Action;
import org.jdesktop.application.ResourceMap;
import org.jdesktop.application.SingleFrameApplication;
import org.jdesktop.application.FrameView;
import org.jdesktop.application.TaskMonitor;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.Timer;
import javax.swing.Icon;
import javax.swing.JDialog;
import javax.swing.JFrame;
import br.com.lista05.*;
/**
 * The application's main frame.
 */
public class AgendaView extends FrameView {
    
    private boolean optDBPostgre = false;
    private boolean optDBMySQL = false;
    private int optArmazenamento;
    private Repositorio agenda = null;
    private Agenda agendaArray = null;
    private DAOFactory dao;
    private boolean optTarefaGerencial = false;
    private boolean optTarefaDesenv = false;
    private boolean optTarefaDesenvAuto = false;  
    private int opcaoTipoTarefa;
    private boolean optConstrutor1 = false;
    private boolean optConstrutor2 = false;
    private int opcaoTarefa;
    public AgendaView(SingleFrameApplication app) {
        super(app);
        
        initComponents();
        
        // status bar initialization - message timeout, idle icon and busy animation, etc
        ResourceMap resourceMap = getResourceMap();
        int messageTimeout = resourceMap.getInteger("StatusBar.messageTimeout");
        messageTimer = new Timer(messageTimeout, new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                statusMessageLabel.setText("");
            }
        });
        messageTimer.setRepeats(false);
        int busyAnimationRate = resourceMap.getInteger("StatusBar.busyAnimationRate");
        for (int i = 0; i < busyIcons.length; i++) {
            busyIcons[i] = resourceMap.getIcon("StatusBar.busyIcons[" + i + "]");
        }
        busyIconTimer = new Timer(busyAnimationRate, new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                busyIconIndex = (busyIconIndex + 1) % busyIcons.length;
                statusAnimationLabel.setIcon(busyIcons[busyIconIndex]);
            }
        });
        idleIcon = resourceMap.getIcon("StatusBar.idleIcon");
        statusAnimationLabel.setIcon(idleIcon);
        progressBar.setVisible(false);

        // connecting action tasks to status bar via TaskMonitor
        TaskMonitor taskMonitor = new TaskMonitor(getApplication().getContext());
        taskMonitor.addPropertyChangeListener(new java.beans.PropertyChangeListener() {
            public void propertyChange(java.beans.PropertyChangeEvent evt) {
                String propertyName = evt.getPropertyName();
                if ("started".equals(propertyName)) {
                    if (!busyIconTimer.isRunning()) {
                        statusAnimationLabel.setIcon(busyIcons[0]);
                        busyIconIndex = 0;
                        busyIconTimer.start();
                    }
                    progressBar.setVisible(true);
                    progressBar.setIndeterminate(true);
                } else if ("done".equals(propertyName)) {
                    busyIconTimer.stop();
                    statusAnimationLabel.setIcon(idleIcon);
                    progressBar.setVisible(false);
                    progressBar.setValue(0);
                } else if ("message".equals(propertyName)) {
                    String text = (String)(evt.getNewValue());
                    statusMessageLabel.setText((text == null) ? "" : text);
                    messageTimer.restart();
                } else if ("progress".equals(propertyName)) {
                    int value = (Integer)(evt.getNewValue());
                    progressBar.setVisible(true);
                    progressBar.setIndeterminate(false);
                    progressBar.setValue(value);
                }
            }
        });
        jTabPanelArmazenamento.setVisible(true);
        jPanOpcao.setVisible(false);
    }

    @Action
    public void showAboutBox() {
        if (aboutBox == null) {
            JFrame mainFrame = AgendaApp.getApplication().getMainFrame();
            aboutBox = new AgendaAboutBox(mainFrame);
            aboutBox.setLocationRelativeTo(mainFrame);
        }
        AgendaApp.getApplication().show(aboutBox);
    }

    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {
        bindingGroup = new org.jdesktop.beansbinding.BindingGroup();

        menuBar = new javax.swing.JMenuBar();
        javax.swing.JMenu fileMenu = new javax.swing.JMenu();
        javax.swing.JMenuItem exitMenuItem = new javax.swing.JMenuItem();
        optDados = new javax.swing.JMenuItem();
        optPrincipal = new javax.swing.JMenuItem();
        jMenuArmazenamento = new javax.swing.JMenuItem();
        javax.swing.JMenu helpMenu = new javax.swing.JMenu();
        javax.swing.JMenuItem aboutMenuItem = new javax.swing.JMenuItem();
        jPanPrincipal = new javax.swing.JPanel();
        jTabPanelArmazenamento = new javax.swing.JTabbedPane();
        jPanOptDados = new javax.swing.JPanel();
        jLabelTituloDados1 = new javax.swing.JLabel();
        jLabelTituloOptDados1 = new javax.swing.JLabel();
        jCBOptDados = new javax.swing.JComboBox();
        optDadosOk = new javax.swing.JButton();
        jPanAgendaArray = new javax.swing.JPanel();
        jLabel12 = new javax.swing.JLabel();
        jTFTamArray = new javax.swing.JTextField();
        jLabel13 = new javax.swing.JLabel();
        jPanOptDB = new javax.swing.JPanel();
        jLabel3 = new javax.swing.JLabel();
        jROptDBPostgre = new javax.swing.JRadioButton();
        jROptDBMySQL = new javax.swing.JRadioButton();
        optDBOk = new javax.swing.JButton();
        jPanFinalizado = new javax.swing.JPanel();
        jLabel4 = new javax.swing.JLabel();
        jLabel5 = new javax.swing.JLabel();
        jBtProsseguirApp = new javax.swing.JButton();
        jButton2 = new javax.swing.JButton();
        jPanOpcao = new javax.swing.JPanel();
        jLabelTitulo = new javax.swing.JLabel();
        jLabelOpt1 = new javax.swing.JLabel();
        jLabelMsg = new javax.swing.JLabel();
        jLabelOpt2 = new javax.swing.JLabel();
        jLabelOpt3 = new javax.swing.JLabel();
        jLabelOpt4 = new javax.swing.JLabel();
        jLabelOpt5 = new javax.swing.JLabel();
        jLabelOpt6 = new javax.swing.JLabel();
        jLabelOpt7 = new javax.swing.JLabel();
        jLabelOpt8 = new javax.swing.JLabel();
        jLabelOpt9 = new javax.swing.JLabel();
        jLabelOpt10 = new javax.swing.JLabel();
        jLabelOpcao = new javax.swing.JLabel();
        jTFOpcao = new javax.swing.JTextField();
        btExecutar = new javax.swing.JButton();
        statusPanel = new javax.swing.JPanel();
        javax.swing.JSeparator statusPanelSeparator = new javax.swing.JSeparator();
        statusMessageLabel = new javax.swing.JLabel();
        statusAnimationLabel = new javax.swing.JLabel();
        progressBar = new javax.swing.JProgressBar();
        jIFrameAgendaArray = new javax.swing.JInternalFrame();
        btGroupOptTarefa = new javax.swing.ButtonGroup();
        btGroupOptConstrutor = new javax.swing.ButtonGroup();
        btGroupOptDB = new javax.swing.ButtonGroup();
        jFrameCadastro = new javax.swing.JFrame();
        jSplitPane1 = new javax.swing.JSplitPane();
        jPanel4 = new javax.swing.JPanel();
        jLabel6 = new javax.swing.JLabel();
        jLabel9 = new javax.swing.JLabel();
        jLabel10 = new javax.swing.JLabel();
        jLabel11 = new javax.swing.JLabel();
        jBtAddTarefa = new javax.swing.JButton();
        jPanel3 = new javax.swing.JPanel();
        jPanel1 = new javax.swing.JPanel();
        jRTarefaDesenvAuto = new javax.swing.JRadioButton();
        jRTarefaDesenv = new javax.swing.JRadioButton();
        jRTarefaGerencial = new javax.swing.JRadioButton();
        jLabel1 = new javax.swing.JLabel();
        jPanel2 = new javax.swing.JPanel();
        jRConstrutor1 = new javax.swing.JRadioButton();
        jRConstrutor2 = new javax.swing.JRadioButton();
        jLabel2 = new javax.swing.JLabel();
        jLabel7 = new javax.swing.JLabel();
        jLabel8 = new javax.swing.JLabel();
        jDialogAgendaArray = new javax.swing.JDialog();
        jLabel14 = new javax.swing.JLabel();
        jBtOkAgendaArray = new javax.swing.JButton();
        jDialogOptInvalida = new javax.swing.JDialog();
        jLabel15 = new javax.swing.JLabel();
        jBtOkOptApp = new javax.swing.JButton();

        menuBar.setName("menuBar"); // NOI18N

        org.jdesktop.application.ResourceMap resourceMap = org.jdesktop.application.Application.getInstance(agenda.AgendaApp.class).getContext().getResourceMap(AgendaView.class);
        fileMenu.setText(resourceMap.getString("fileMenu.text")); // NOI18N
        fileMenu.setName("fileMenu"); // NOI18N

        javax.swing.ActionMap actionMap = org.jdesktop.application.Application.getInstance(agenda.AgendaApp.class).getContext().getActionMap(AgendaView.class, this);
        exitMenuItem.setAction(actionMap.get("quit")); // NOI18N
        exitMenuItem.setName("exitMenuItem"); // NOI18N
        fileMenu.add(exitMenuItem);

        optDados.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_D, java.awt.event.InputEvent.CTRL_MASK));
        optDados.setText(resourceMap.getString("optDados.text")); // NOI18N
        optDados.setName("optDados"); // NOI18N
        fileMenu.add(optDados);
        optDados.getAccessibleContext().setAccessibleName(resourceMap.getString("jMenuItem1.AccessibleContext.accessibleName")); // NOI18N

        optPrincipal.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_P, java.awt.event.InputEvent.CTRL_MASK));
        optPrincipal.setText(resourceMap.getString("optPrincipal.text")); // NOI18N
        optPrincipal.setName("optPrincipal"); // NOI18N
        fileMenu.add(optPrincipal);

        jMenuArmazenamento.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_A, java.awt.event.InputEvent.CTRL_MASK));
        jMenuArmazenamento.setText(resourceMap.getString("jMenuArmazenamento.text")); // NOI18N
        jMenuArmazenamento.setName("jMenuArmazenamento"); // NOI18N
        fileMenu.add(jMenuArmazenamento);

        menuBar.add(fileMenu);

        helpMenu.setText(resourceMap.getString("helpMenu.text")); // NOI18N
        helpMenu.setName("helpMenu"); // NOI18N

        aboutMenuItem.setAction(actionMap.get("showAboutBox")); // NOI18N
        aboutMenuItem.setName("aboutMenuItem"); // NOI18N
        helpMenu.add(aboutMenuItem);

        menuBar.add(helpMenu);

        jPanPrincipal.setName("jPanPrincipal"); // NOI18N

        org.jdesktop.beansbinding.Binding binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, this, org.jdesktop.beansbinding.ELProperty.create("${application}"), jPanPrincipal, org.jdesktop.beansbinding.BeanProperty.create("foreground"));
        bindingGroup.addBinding(binding);

        jPanPrincipal.setLayout(new java.awt.CardLayout());

        jTabPanelArmazenamento.setName("jTabPanelArmazenamento"); // NOI18N

        jPanOptDados.setName("jPanOptDados"); // NOI18N

        jLabelTituloDados1.setFont(resourceMap.getFont("jLabelTituloDados1.font")); // NOI18N
        jLabelTituloDados1.setText(resourceMap.getString("jLabelTituloDados1.text")); // NOI18N
        jLabelTituloDados1.setName("jLabelTituloDados1"); // NOI18N

        jLabelTituloOptDados1.setFont(resourceMap.getFont("jLabelTituloOptDados1.font")); // NOI18N
        jLabelTituloOptDados1.setText(resourceMap.getString("jLabelTituloOptDados1.text")); // NOI18N
        jLabelTituloOptDados1.setName("jLabelTituloOptDados1"); // NOI18N

        jCBOptDados.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "1 - Agenda", "2 - Agenda Vector", "3 - Agenda Hash", "4 - Banco de Dados" }));
        jCBOptDados.setName("jCBOptDados"); // NOI18N
        jCBOptDados.addItemListener(new java.awt.event.ItemListener() {
            public void itemStateChanged(java.awt.event.ItemEvent evt) {
                validaOptAgenda(evt);
            }
        });

        optDadosOk.setText(resourceMap.getString("optDadosOk.text")); // NOI18N
        optDadosOk.setName("optDadosOk"); // NOI18N
        optDadosOk.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                optProxArmazena(evt);
            }
        });

        jPanAgendaArray.setEnabled(false);
        jPanAgendaArray.setName("jPanAgendaArray"); // NOI18N

        jLabel12.setText(resourceMap.getString("jLabel12.text")); // NOI18N
        jLabel12.setName("jLabel12"); // NOI18N

        jTFTamArray.setText(resourceMap.getString("jTFTamArray.text")); // NOI18N
        jTFTamArray.setName("jTFTamArray"); // NOI18N

        jLabel13.setText(resourceMap.getString("jLabel13.text")); // NOI18N
        jLabel13.setName("jLabel13"); // NOI18N

        javax.swing.GroupLayout jPanAgendaArrayLayout = new javax.swing.GroupLayout(jPanAgendaArray);
        jPanAgendaArray.setLayout(jPanAgendaArrayLayout);
        jPanAgendaArrayLayout.setHorizontalGroup(
            jPanAgendaArrayLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanAgendaArrayLayout.createSequentialGroup()
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addGroup(jPanAgendaArrayLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanAgendaArrayLayout.createSequentialGroup()
                        .addGap(10, 10, 10)
                        .addComponent(jLabel13)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jTFTamArray, javax.swing.GroupLayout.PREFERRED_SIZE, 144, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addContainerGap())
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanAgendaArrayLayout.createSequentialGroup()
                        .addComponent(jLabel12)
                        .addContainerGap())))
        );
        jPanAgendaArrayLayout.setVerticalGroup(
            jPanAgendaArrayLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanAgendaArrayLayout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jLabel12)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addGroup(jPanAgendaArrayLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel13)
                    .addComponent(jTFTamArray, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        javax.swing.GroupLayout jPanOptDadosLayout = new javax.swing.GroupLayout(jPanOptDados);
        jPanOptDados.setLayout(jPanOptDadosLayout);
        jPanOptDadosLayout.setHorizontalGroup(
            jPanOptDadosLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanOptDadosLayout.createSequentialGroup()
                .addGroup(jPanOptDadosLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanOptDadosLayout.createSequentialGroup()
                        .addGap(33, 33, 33)
                        .addGroup(jPanOptDadosLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(jPanOptDadosLayout.createSequentialGroup()
                                .addGap(48, 48, 48)
                                .addGroup(jPanOptDadosLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                    .addComponent(jLabelTituloOptDados1, javax.swing.GroupLayout.Alignment.TRAILING)
                                    .addComponent(jCBOptDados, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                                .addGap(112, 112, 112)
                                .addComponent(jPanAgendaArray, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                            .addComponent(jLabelTituloDados1)))
                    .addGroup(jPanOptDadosLayout.createSequentialGroup()
                        .addGap(224, 224, 224)
                        .addComponent(optDadosOk, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE)))
                .addContainerGap(42, Short.MAX_VALUE))
        );
        jPanOptDadosLayout.setVerticalGroup(
            jPanOptDadosLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanOptDadosLayout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jLabelTituloDados1, javax.swing.GroupLayout.PREFERRED_SIZE, 27, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanOptDadosLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jPanAgendaArray, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addGroup(jPanOptDadosLayout.createSequentialGroup()
                        .addComponent(jLabelTituloOptDados1)
                        .addGap(18, 18, 18)
                        .addComponent(jCBOptDados, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
                .addGap(29, 29, 29)
                .addComponent(optDadosOk)
                .addContainerGap(204, Short.MAX_VALUE))
        );

        jTabPanelArmazenamento.addTab(resourceMap.getString("jPanOptDados.TabConstraints.tabTitle"), jPanOptDados); // NOI18N

        jPanOptDB.setEnabled(false);
        jPanOptDB.setName("jPanOptDB"); // NOI18N

        jLabel3.setFont(resourceMap.getFont("jLabel3.font")); // NOI18N
        jLabel3.setText(resourceMap.getString("jLabel3.text")); // NOI18N
        jLabel3.setName("jLabel3"); // NOI18N

        btGroupOptDB.add(jROptDBPostgre);
        jROptDBPostgre.setFont(resourceMap.getFont("jROptDBPostgre.font")); // NOI18N
        jROptDBPostgre.setText(resourceMap.getString("jROptDBPostgre.text")); // NOI18N
        jROptDBPostgre.setName("jROptDBPostgre"); // NOI18N

        btGroupOptDB.add(jROptDBMySQL);
        jROptDBMySQL.setFont(resourceMap.getFont("jROptDBMySQL.font")); // NOI18N
        jROptDBMySQL.setText(resourceMap.getString("jROptDBMySQL.text")); // NOI18N
        jROptDBMySQL.setName("jROptDBMySQL"); // NOI18N

        optDBOk.setText(resourceMap.getString("optDBOk.text")); // NOI18N
        optDBOk.setName("optDBOk"); // NOI18N
        optDBOk.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                optProxEscolhaDB(evt);
            }
        });

        javax.swing.GroupLayout jPanOptDBLayout = new javax.swing.GroupLayout(jPanOptDB);
        jPanOptDB.setLayout(jPanOptDBLayout);
        jPanOptDBLayout.setHorizontalGroup(
            jPanOptDBLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanOptDBLayout.createSequentialGroup()
                .addGap(118, 118, 118)
                .addGroup(jPanOptDBLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                    .addComponent(jROptDBPostgre)
                    .addComponent(jROptDBMySQL)
                    .addComponent(jLabel3, javax.swing.GroupLayout.PREFERRED_SIZE, 182, Short.MAX_VALUE)
                    .addComponent(optDBOk, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                .addContainerGap(363, Short.MAX_VALUE))
        );
        jPanOptDBLayout.setVerticalGroup(
            jPanOptDBLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanOptDBLayout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jLabel3)
                .addGap(18, 18, 18)
                .addComponent(jROptDBPostgre)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(jROptDBMySQL)
                .addGap(18, 18, 18)
                .addComponent(optDBOk)
                .addContainerGap(231, Short.MAX_VALUE))
        );

        jTabPanelArmazenamento.addTab(resourceMap.getString("jPanOptDB.TabConstraints.tabTitle"), jPanOptDB); // NOI18N

        jPanFinalizado.setName("jPanFinalizado"); // NOI18N

        jLabel4.setFont(resourceMap.getFont("jLabFinalizado.font")); // NOI18N
        jLabel4.setText(resourceMap.getString("jLabFinalizado.text")); // NOI18N
        jLabel4.setName("jLabFinalizado"); // NOI18N

        jLabel5.setFont(resourceMap.getFont("jLabel5.font")); // NOI18N
        jLabel5.setText(resourceMap.getString("jLabel5.text")); // NOI18N
        jLabel5.setName("jLabel5"); // NOI18N

        jBtProsseguirApp.setText(resourceMap.getString("jBtProsseguirApp.text")); // NOI18N
        jBtProsseguirApp.setName("jBtProsseguirApp"); // NOI18N
        jBtProsseguirApp.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jBtProsseguir(evt);
            }
        });

        jButton2.setText(resourceMap.getString("jButton2.text")); // NOI18N
        jButton2.setName("jButton2"); // NOI18N
        jButton2.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jBtFecharApp(evt);
            }
        });

        javax.swing.GroupLayout jPanFinalizadoLayout = new javax.swing.GroupLayout(jPanFinalizado);
        jPanFinalizado.setLayout(jPanFinalizadoLayout);
        jPanFinalizadoLayout.setHorizontalGroup(
            jPanFinalizadoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanFinalizadoLayout.createSequentialGroup()
                .addGap(20, 20, 20)
                .addGroup(jPanFinalizadoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jLabel5, javax.swing.GroupLayout.PREFERRED_SIZE, 132, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel4)
                    .addGroup(jPanFinalizadoLayout.createSequentialGroup()
                        .addComponent(jBtProsseguirApp, javax.swing.GroupLayout.PREFERRED_SIZE, 123, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(65, 65, 65)
                        .addComponent(jButton2, javax.swing.GroupLayout.PREFERRED_SIZE, 127, javax.swing.GroupLayout.PREFERRED_SIZE)))
                .addContainerGap(278, Short.MAX_VALUE))
        );
        jPanFinalizadoLayout.setVerticalGroup(
            jPanFinalizadoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanFinalizadoLayout.createSequentialGroup()
                .addGap(25, 25, 25)
                .addComponent(jLabel4)
                .addGap(18, 18, 18)
                .addComponent(jLabel5)
                .addGap(33, 33, 33)
                .addGroup(jPanFinalizadoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jBtProsseguirApp)
                    .addComponent(jButton2))
                .addContainerGap(234, Short.MAX_VALUE))
        );

        jTabPanelArmazenamento.addTab(resourceMap.getString("jPanFinalizado.TabConstraints.tabTitle"), jPanFinalizado); // NOI18N

        jPanPrincipal.add(jTabPanelArmazenamento, "card5");

        jPanOpcao.setName("Principal");

        jLabelTitulo.setFont(resourceMap.getFont("jLabelTitulo.font")); // NOI18N
        jLabelTitulo.setText(resourceMap.getString("jLabelTitulo.text")); // NOI18N
        jLabelTitulo.setName("jLabelTitulo"); // NOI18N

        jLabelOpt1.setText(resourceMap.getString("jLabelOpt1.text")); // NOI18N
        jLabelOpt1.setName("jLabelOpt1"); // NOI18N

        jLabelMsg.setFont(resourceMap.getFont("jLabelMsg.font")); // NOI18N
        jLabelMsg.setText(resourceMap.getString("jLabelMsg.text")); // NOI18N
        jLabelMsg.setName("jLabelMsg"); // NOI18N

        jLabelOpt2.setText(resourceMap.getString("jLabelOpt2.text")); // NOI18N
        jLabelOpt2.setName("jLabelOpt2"); // NOI18N

        jLabelOpt3.setText(resourceMap.getString("jLabelOpt3.text")); // NOI18N
        jLabelOpt3.setName("jLabelOpt3"); // NOI18N

        jLabelOpt4.setText(resourceMap.getString("jLabelOpt4.text")); // NOI18N
        jLabelOpt4.setName("jLabelOpt4"); // NOI18N

        jLabelOpt5.setText(resourceMap.getString("jLabelOpt5.text")); // NOI18N
        jLabelOpt5.setName("jLabelOpt5"); // NOI18N

        jLabelOpt6.setText(resourceMap.getString("jLabelOpt6.text")); // NOI18N
        jLabelOpt6.setName("jLabelOpt6"); // NOI18N

        jLabelOpt7.setText(resourceMap.getString("jLabelOpt7.text")); // NOI18N
        jLabelOpt7.setName("jLabelOpt7"); // NOI18N

        jLabelOpt8.setText(resourceMap.getString("jLabelOpt8.text")); // NOI18N
        jLabelOpt8.setName("jLabelOpt8"); // NOI18N

        jLabelOpt9.setText(resourceMap.getString("jLabelOpt9.text")); // NOI18N
        jLabelOpt9.setName("jLabelOpt9"); // NOI18N

        jLabelOpt10.setText(resourceMap.getString("jLabelOpt10.text")); // NOI18N
        jLabelOpt10.setName("jLabelOpt10"); // NOI18N

        jLabelOpcao.setText(resourceMap.getString("jLabelOpcao.text")); // NOI18N
        jLabelOpcao.setName("jLabelOpcao"); // NOI18N

        jTFOpcao.setText(resourceMap.getString("jTFOpcao.text")); // NOI18N
        jTFOpcao.setName("jTFOpcao"); // NOI18N

        btExecutar.setText(resourceMap.getString("btExecutar.text")); // NOI18N
        btExecutar.setName("btExecutar"); // NOI18N
        btExecutar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btExecutarValidaOpt(evt);
            }
        });

        javax.swing.GroupLayout jPanOpcaoLayout = new javax.swing.GroupLayout(jPanOpcao);
        jPanOpcao.setLayout(jPanOpcaoLayout);
        jPanOpcaoLayout.setHorizontalGroup(
            jPanOpcaoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanOpcaoLayout.createSequentialGroup()
                .addGroup(jPanOpcaoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanOpcaoLayout.createSequentialGroup()
                        .addGap(168, 168, 168)
                        .addGroup(jPanOpcaoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jLabelOpt1, javax.swing.GroupLayout.PREFERRED_SIZE, 329, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(jLabelOpt2)
                            .addComponent(jLabelOpt3)
                            .addComponent(jLabelOpt4)
                            .addComponent(jLabelOpt5)
                            .addComponent(jLabelOpt6)
                            .addComponent(jLabelOpt8)
                            .addComponent(jLabelOpt9)
                            .addComponent(jLabelOpt10)
                            .addGroup(jPanOpcaoLayout.createSequentialGroup()
                                .addComponent(jLabelOpcao)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(jTFOpcao, javax.swing.GroupLayout.PREFERRED_SIZE, 43, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addGap(66, 66, 66)
                                .addComponent(btExecutar))
                            .addComponent(jLabelMsg)
                            .addComponent(jLabelOpt7)))
                    .addGroup(jPanOpcaoLayout.createSequentialGroup()
                        .addGap(222, 222, 222)
                        .addComponent(jLabelTitulo, javax.swing.GroupLayout.PREFERRED_SIZE, 200, javax.swing.GroupLayout.PREFERRED_SIZE)))
                .addContainerGap(116, Short.MAX_VALUE))
        );
        jPanOpcaoLayout.setVerticalGroup(
            jPanOpcaoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanOpcaoLayout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jLabelTitulo, javax.swing.GroupLayout.PREFERRED_SIZE, 22, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(3, 3, 3)
                .addComponent(jLabelMsg)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(jLabelOpt1)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jLabelOpt2)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jLabelOpt3)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jLabelOpt4)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jLabelOpt5)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jLabelOpt6)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jLabelOpt7)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jLabelOpt8)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jLabelOpt9)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jLabelOpt10)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanOpcaoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jTFOpcao, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabelOpcao)
                    .addComponent(btExecutar))
                .addContainerGap(110, Short.MAX_VALUE))
        );

        jPanPrincipal.add(jPanOpcao, "card3");

        statusPanel.setName("statusPanel"); // NOI18N

        statusPanelSeparator.setName("statusPanelSeparator"); // NOI18N

        statusMessageLabel.setName("statusMessageLabel"); // NOI18N

        statusAnimationLabel.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
        statusAnimationLabel.setName("statusAnimationLabel"); // NOI18N

        progressBar.setName("progressBar"); // NOI18N

        javax.swing.GroupLayout statusPanelLayout = new javax.swing.GroupLayout(statusPanel);
        statusPanel.setLayout(statusPanelLayout);
        statusPanelLayout.setHorizontalGroup(
            statusPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(statusPanelSeparator, javax.swing.GroupLayout.DEFAULT_SIZE, 668, Short.MAX_VALUE)
            .addGroup(statusPanelLayout.createSequentialGroup()
                .addContainerGap()
                .addComponent(statusMessageLabel)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 498, Short.MAX_VALUE)
                .addComponent(progressBar, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(statusAnimationLabel)
                .addContainerGap())
        );
        statusPanelLayout.setVerticalGroup(
            statusPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(statusPanelLayout.createSequentialGroup()
                .addComponent(statusPanelSeparator, javax.swing.GroupLayout.PREFERRED_SIZE, 2, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 376, Short.MAX_VALUE)
                .addGroup(statusPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(statusMessageLabel)
                    .addComponent(statusAnimationLabel)
                    .addComponent(progressBar, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(3, 3, 3))
        );

        jPanPrincipal.add(statusPanel, "card2");

        jIFrameAgendaArray.setName("jIFrameAgendaArray"); // NOI18N

        javax.swing.GroupLayout jIFrameAgendaArrayLayout = new javax.swing.GroupLayout(jIFrameAgendaArray.getContentPane());
        jIFrameAgendaArray.getContentPane().setLayout(jIFrameAgendaArrayLayout);
        jIFrameAgendaArrayLayout.setHorizontalGroup(
            jIFrameAgendaArrayLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 652, Short.MAX_VALUE)
        );
        jIFrameAgendaArrayLayout.setVerticalGroup(
            jIFrameAgendaArrayLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 366, Short.MAX_VALUE)
        );

        jPanPrincipal.add(jIFrameAgendaArray, "card5");

        jFrameCadastro.setName("jFrameCadastro"); // NOI18N

        jSplitPane1.setDividerLocation(250);
        jSplitPane1.setDividerSize(25);
        jSplitPane1.setOrientation(javax.swing.JSplitPane.VERTICAL_SPLIT);
        jSplitPane1.setName("jSplitPane1"); // NOI18N

        jPanel4.setEnabled(false);
        jPanel4.setName("jPanel4"); // NOI18N

        jLabel6.setFont(resourceMap.getFont("jLabel6.font")); // NOI18N
        jLabel6.setText(resourceMap.getString("jLabel6.text")); // NOI18N
        jLabel6.setName("jLabel6"); // NOI18N

        jLabel9.setText(resourceMap.getString("jLabel9.text")); // NOI18N
        jLabel9.setName("jLabel9"); // NOI18N

        jLabel10.setText(resourceMap.getString("jLabel10.text")); // NOI18N
        jLabel10.setName("jLabel10"); // NOI18N

        jLabel11.setText(resourceMap.getString("jLabel11.text")); // NOI18N
        jLabel11.setName("jLabel11"); // NOI18N

        jBtAddTarefa.setText(resourceMap.getString("jBtAddTarefa.text")); // NOI18N
        jBtAddTarefa.setName("jBtAddTarefa"); // NOI18N
        jBtAddTarefa.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                addTarefa(evt);
            }
        });

        javax.swing.GroupLayout jPanel4Layout = new javax.swing.GroupLayout(jPanel4);
        jPanel4.setLayout(jPanel4Layout);
        jPanel4Layout.setHorizontalGroup(
            jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel4Layout.createSequentialGroup()
                .addContainerGap(198, Short.MAX_VALUE)
                .addComponent(jLabel6)
                .addGap(282, 282, 282))
            .addGroup(jPanel4Layout.createSequentialGroup()
                .addGap(76, 76, 76)
                .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jLabel11)
                    .addComponent(jLabel10)
                    .addComponent(jLabel9))
                .addContainerGap(757, Short.MAX_VALUE))
            .addGroup(jPanel4Layout.createSequentialGroup()
                .addGap(334, 334, 334)
                .addComponent(jBtAddTarefa)
                .addContainerGap(458, Short.MAX_VALUE))
        );
        jPanel4Layout.setVerticalGroup(
            jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel4Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jLabel6)
                .addGap(40, 40, 40)
                .addComponent(jLabel9)
                .addGap(18, 18, 18)
                .addComponent(jLabel10)
                .addGap(18, 18, 18)
                .addComponent(jLabel11)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 31, Short.MAX_VALUE)
                .addComponent(jBtAddTarefa)
                .addGap(29, 29, 29))
        );

        jSplitPane1.setRightComponent(jPanel4);

        jPanel3.setEnabled(false);
        jPanel3.setName("jPanel3"); // NOI18N

        jPanel1.setName("jPanel1"); // NOI18N

        btGroupOptTarefa.add(jRTarefaDesenvAuto);
        jRTarefaDesenvAuto.setText(resourceMap.getString("jRTarefaDesenvAuto.text")); // NOI18N
        jRTarefaDesenvAuto.setName("jRTarefaDesenvAuto"); // NOI18N

        btGroupOptTarefa.add(jRTarefaDesenv);
        jRTarefaDesenv.setText(resourceMap.getString("jRTarefaDesenv.text")); // NOI18N
        jRTarefaDesenv.setName("jRTarefaDesenv"); // NOI18N

        btGroupOptTarefa.add(jRTarefaGerencial);
        jRTarefaGerencial.setText(resourceMap.getString("jRTarefaGerencial.text")); // NOI18N
        jRTarefaGerencial.setName("jRTarefaGerencial"); // NOI18N

        javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
        jPanel1.setLayout(jPanel1Layout);
        jPanel1Layout.setHorizontalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jRTarefaDesenvAuto)
                    .addComponent(jRTarefaDesenv)
                    .addComponent(jRTarefaGerencial))
                .addContainerGap(23, Short.MAX_VALUE))
        );
        jPanel1Layout.setVerticalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jRTarefaGerencial)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addComponent(jRTarefaDesenv)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jRTarefaDesenvAuto, javax.swing.GroupLayout.PREFERRED_SIZE, 23, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(37, 37, 37))
        );

        jLabel1.setText(resourceMap.getString("jLabel1.text")); // NOI18N
        jLabel1.setName("jLabel1"); // NOI18N

        jPanel2.setName("jPanel2"); // NOI18N

        btGroupOptConstrutor.add(jRConstrutor1);
        jRConstrutor1.setText(resourceMap.getString("jRConstrutor1.text")); // NOI18N
        jRConstrutor1.setName("jRConstrutor1"); // NOI18N

        btGroupOptConstrutor.add(jRConstrutor2);
        jRConstrutor2.setText(resourceMap.getString("jRConstrutor2.text")); // NOI18N
        jRConstrutor2.setName("jRConstrutor2"); // NOI18N

        javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
        jPanel2.setLayout(jPanel2Layout);
        jPanel2Layout.setHorizontalGroup(
            jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(jRConstrutor2)
            .addComponent(jRConstrutor1)
        );
        jPanel2Layout.setVerticalGroup(
            jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel2Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jRConstrutor1)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(jRConstrutor2)
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        jLabel2.setText(resourceMap.getString("jLabel2.text")); // NOI18N
        jLabel2.setName("jLabel2"); // NOI18N

        jLabel7.setFont(resourceMap.getFont("jLabel7.font")); // NOI18N
        jLabel7.setText(resourceMap.getString("jLabel7.text")); // NOI18N
        jLabel7.setName("jLabel7"); // NOI18N

        jLabel8.setText(resourceMap.getString("jLabel8.text")); // NOI18N
        jLabel8.setName("jLabel8"); // NOI18N

        javax.swing.GroupLayout jPanel3Layout = new javax.swing.GroupLayout(jPanel3);
        jPanel3.setLayout(jPanel3Layout);
        jPanel3Layout.setHorizontalGroup(
            jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel3Layout.createSequentialGroup()
                .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel3Layout.createSequentialGroup()
                        .addGap(306, 306, 306)
                        .addComponent(jLabel7))
                    .addGroup(jPanel3Layout.createSequentialGroup()
                        .addGap(55, 55, 55)
                        .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(jPanel3Layout.createSequentialGroup()
                                .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                    .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                                    .addComponent(jLabel1))
                                .addGap(38, 38, 38)
                                .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                    .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                                    .addComponent(jLabel2)))
                            .addComponent(jLabel8))))
                .addContainerGap(231, Short.MAX_VALUE))
        );
        jPanel3Layout.setVerticalGroup(
            jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel3Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jLabel7)
                .addGap(18, 18, 18)
                .addComponent(jLabel8)
                .addGap(27, 27, 27)
                .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel2)
                    .addComponent(jLabel1))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, 81, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(64, 64, 64))
        );

        jSplitPane1.setLeftComponent(jPanel3);

        javax.swing.GroupLayout jFrameCadastroLayout = new javax.swing.GroupLayout(jFrameCadastro.getContentPane());
        jFrameCadastro.getContentPane().setLayout(jFrameCadastroLayout);
        jFrameCadastroLayout.setHorizontalGroup(
            jFrameCadastroLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 895, Short.MAX_VALUE)
            .addGroup(jFrameCadastroLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jFrameCadastroLayout.createSequentialGroup()
                    .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(jSplitPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 875, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addContainerGap()))
        );
        jFrameCadastroLayout.setVerticalGroup(
            jFrameCadastroLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 527, Short.MAX_VALUE)
            .addGroup(jFrameCadastroLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(jFrameCadastroLayout.createSequentialGroup()
                    .addContainerGap()
                    .addComponent(jSplitPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 505, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
        );

        jDialogAgendaArray.setName("jDialogAgendaArray"); // NOI18N

        jLabel14.setText(resourceMap.getString("jLabel14.text")); // NOI18N
        jLabel14.setName("jLabel14"); // NOI18N

        jBtOkAgendaArray.setText(resourceMap.getString("jBtOkAgendaArray.text")); // NOI18N
        jBtOkAgendaArray.setName("jBtOkAgendaArray"); // NOI18N
        jBtOkAgendaArray.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jBtOkAgendaArrayActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout jDialogAgendaArrayLayout = new javax.swing.GroupLayout(jDialogAgendaArray.getContentPane());
        jDialogAgendaArray.getContentPane().setLayout(jDialogAgendaArrayLayout);
        jDialogAgendaArrayLayout.setHorizontalGroup(
            jDialogAgendaArrayLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jDialogAgendaArrayLayout.createSequentialGroup()
                .addGroup(jDialogAgendaArrayLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jDialogAgendaArrayLayout.createSequentialGroup()
                        .addGap(23, 23, 23)
                        .addComponent(jLabel14, javax.swing.GroupLayout.PREFERRED_SIZE, 317, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addGroup(jDialogAgendaArrayLayout.createSequentialGroup()
                        .addGap(90, 90, 90)
                        .addComponent(jBtOkAgendaArray)))
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );
        jDialogAgendaArrayLayout.setVerticalGroup(
            jDialogAgendaArrayLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jDialogAgendaArrayLayout.createSequentialGroup()
                .addGap(19, 19, 19)
                .addComponent(jLabel14)
                .addGap(18, 18, 18)
                .addComponent(jBtOkAgendaArray)
                .addContainerGap(47, Short.MAX_VALUE))
        );

        jDialogOptInvalida.setName("jDialogOptInvalida"); // NOI18N

        jLabel15.setText(resourceMap.getString("jLabel15.text")); // NOI18N
        jLabel15.setName("jLabel15"); // NOI18N

        jBtOkOptApp.setText(resourceMap.getString("jBtOkOptApp.text")); // NOI18N
        jBtOkOptApp.setName("jBtOkOptApp"); // NOI18N
        jBtOkOptApp.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                opcaoInvalidaApp(evt);
            }
        });

        javax.swing.GroupLayout jDialogOptInvalidaLayout = new javax.swing.GroupLayout(jDialogOptInvalida.getContentPane());
        jDialogOptInvalida.getContentPane().setLayout(jDialogOptInvalidaLayout);
        jDialogOptInvalidaLayout.setHorizontalGroup(
            jDialogOptInvalidaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jDialogOptInvalidaLayout.createSequentialGroup()
                .addGroup(jDialogOptInvalidaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jDialogOptInvalidaLayout.createSequentialGroup()
                        .addGap(111, 111, 111)
                        .addComponent(jLabel15, javax.swing.GroupLayout.PREFERRED_SIZE, 147, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addGroup(jDialogOptInvalidaLayout.createSequentialGroup()
                        .addGap(155, 155, 155)
                        .addComponent(jBtOkOptApp)))
                .addContainerGap(99, Short.MAX_VALUE))
        );
        jDialogOptInvalidaLayout.setVerticalGroup(
            jDialogOptInvalidaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jDialogOptInvalidaLayout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jLabel15)
                .addGap(42, 42, 42)
                .addComponent(jBtOkOptApp)
                .addContainerGap(47, Short.MAX_VALUE))
        );

        setComponent(jPanPrincipal);
        setMenuBar(menuBar);

        bindingGroup.bind();
    }// </editor-fold>//GEN-END:initComponents
    public void btCadastroTarefa(){
        Object tarefas = null;
    }
    private void btExecutarValidaOpt(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btExecutarValidaOpt
        // TODO add your handling code here:
        
        String opt = jTFOpcao.getText();       
        try{
            if(Integer.parseInt(opt) > 0 || Integer.parseInt(opt) < 11){
                switch(Integer.parseInt(opt)){
                    case 1: 
                        {   
                            jFrameCadastro.setVisible(true);
                        } 
                    case 2: 
                        {
                            try 
                            {
                                System.out.println("Digite o código da Tarefa que você quer remover.");
                                int codigo = s.nextInt();
                                boolean retorno = agenda.removerTarefa(tarefas, codigo);
                                if(retorno)
                                {
                                    System.out.println("A Tarefa foi removida com sucesso.");   
                                }
                                else
                                {
                                    System.out.println("Não existe nenhuma Tarefa cadastrada com o codigo passado.");
                                }

                            } 
                            catch (SemTarefaException ex) 
                            {
                                System.out.println(ex.getMessage());
                            }
                            continue;
                        }
                        case 3: 
                        {
                            try 
                            {
                                System.out.println("Digite o codigo da Tarefa a ser consultada.");
                                int codigo = s.nextInt();
                                TarefaTO retorno = agenda.consultarTarefa(tarefas, codigo);
                                if (retorno != null) 
                                {
                                    System.out.println("################# DESCRIÇÃO DA TAREFA ##################");
                                    System.out.println("Código: " + retorno.getCodigo());
                                    System.out.println("Descrição: " + retorno.getDescricao());
                                    System.out.println("Data: " + retorno.getData());
                                    System.out.println("Hora de início: " + retorno.getHoraInicio());
                                    System.out.println("Duração: " + retorno.getDuracao());
                                    System.out.println("Local: " + retorno.getLocal());
                                    System.out.println("Importância: " + retorno.getImportancia());
                                    System.out.println("Urgência: " + retorno.getUrgencia());
                                    System.out.println("Valor da hora: " + retorno.getValorHora());
                                    System.out.println("Valor cobrado: " + retorno.getValorCobrado());
                                    System.out.println("Status: " + retorno.getStatus());
                                    System.out.println("Consulta realizada com sucesso.");
                                } 
                                else 
                                {
                                    System.out.println("Não existe nenhuma Tarefa cadastrada com o codigo passado.");
                                }                        
                            } 
                            catch (SemTarefaException ex) 
                            {
                                System.out.println(ex.getMessage());
                            }
                            continue;
                        }
                        case 4: 
                        {
                            try 
                            {
                                System.out.println("Digite o codigo da Tarefa a ser iniciada.");
                                int codigo = s.nextInt();
                                boolean retorno = agenda.iniciarTarefa(tarefas, codigo);
                                if (retorno) 
                                {
                                    System.out.println("A tarefa foi iniciada com sucesso.");
                                } 
                                else 
                                {
                                    System.out.println("Não existe nenhuma Tarefa cadastrada com o codigo passado.");
                                }

                            } 
                            catch (SemTarefaException ex) 
                            {
                                System.out.println(ex.getMessage());
                            }
                            continue;
                        }
                        case 5: 
                        {                    
                            try 
                            {
                                System.out.println("Digite o codigo da Tarefa a ser encerrada.");
                                int codigo = s.nextInt();
                                System.out.println("Digite o valor cobrado para a tarefa.");
                                double wValorCobrado = s.nextDouble();
                                boolean retorno = agenda.encerrarTarefa(tarefas, codigo, wValorCobrado);
                                if (retorno) 
                                {
                                    System.out.println("A tarefa foi encerrada com sucesso.");
                                } 
                                else 
                                {
                                    System.out.println("Não existe nenhuma Tarefa cadastrada com o codigo passado.");
                                }

                            } 
                            catch (SemTarefaException ex) 
                            {
                                System.out.println(ex.getMessage());
                            }
                            continue;
                        }
                        case 6: 
                        {                      
                            TarefaTO[] retorno = agenda.listarTarefa(tarefas);
                            if(retorno != null)
                            {
                                System.out.println("As Tarefas cadastradas são:");
                                for (int i = 0; i < retorno.length; i++) 
                                {
                                    if (retorno[i] != null) 
                                    {
                                        System.out.println(" DESCRIÇÃO DA TAREFA " + retorno[i].getCodigo());
                                        System.out.println("Código: " + retorno[i].getCodigo());
                                        System.out.println("Descrição: " + retorno[i].getDescricao());
                                        System.out.println("Data: " + retorno[i].getData());
                                        System.out.println("Hora de inicio: " + retorno[i].getHoraInicio());
                                        System.out.println("Duração: " + retorno[i].getDuracao());
                                        System.out.println("Importância: " + retorno[i].getImportancia());
                                        System.out.println("##########################");
                                        break;
                                    }
                                    continue;
                                }
                            }
                            else
                            {
                                System.out.println("###OBS.: Ainda não há tarefas cadastradas.");
                            }                    
                            continue;
                        }
                        case 7: 
                        {
                            try 
                            {
                                System.out.println("Digite o codigo da Tarefa a ser alterada.");
                                int codigo = s.nextInt();
                                System.out.println("--> Se você pretende incrementar digite 1.");
                                System.out.println("--> Ou se você pretende decrementar digite 2.");
                                int wOpcao = s.nextInt();
                                boolean retorno = agenda.alterarImportancia(tarefas, codigo, wOpcao);
                                if (retorno) 
                                {
                                    System.out.println("A Tarefa foi alterada com sucesso.");
                                } 
                                else 
                                {
                                    System.out.println("Não existe nenhuma Tarefa cadastrada com o codigo passado.");
                                }
                                continue;
                            } 
                            catch (SemTarefaException ex) 
                            {
                                System.out.println(ex.getMessage());
                            }
                        }
                        case 8: 
                        {
                            try 
                            {
                                System.out.println("Digite o codigo da Tarefa a ser alterada.");
                                int codigo = s.nextInt();
                                boolean retorno = agenda.cancelarTarefa(tarefas, codigo);
                                if (retorno) 
                                {
                                    System.out.println("A Tarefa foi alterada com sucesso.");
                                } 
                                else 
                                {
                                    System.out.println("Não existe nenhuma Tarefa cadastrada com o codigo passado.");
                                }
                                continue;
                            } 
                            catch (SemTarefaException ex) 
                            {
                                System.out.println(ex.getMessage());
                            }
                        }
                        case 9: 
                        {
                            if (agenda instanceof Agenda) {
                                try 
                                {
                                    Agenda agendaAux = new Agenda();
                                    agendaAux = (Agenda) agenda;
                                    System.out.println("Digite o codigo da Tarefa a ser alterada:");
                                    int codigo = s.nextInt();
                                    boolean retorno = agendaAux.reiniciarTarefa(tarefas, codigo);
                                    if (retorno) 
                                    {
                                        System.out.println("A Tarefa foi alterada com sucesso.");
                                    } 
                                    else 
                                    {
                                        System.out.println("Não existe nenhuma Tarefa cadastrada com o codigo passado.");
                                    }
                                } 
                                catch (SemTarefaException ex) 
                                {
                                    System.out.println(ex.getMessage());
                                } 
                                catch (SemMetodoException ex) 
                                {
                                    System.out.println(ex.getMessage());
                                }
                                continue;
                            }
                            else if(agenda instanceof AgendaHash)
                            {
                                try 
                                {
                                    AgendaHash agendaAux = new AgendaHash();
                                    agendaAux = (AgendaHash) agenda;
                                    System.out.println("Digite o codigo da Tarefa a ser alterada:");
                                    int codigo = s.nextInt();
                                    boolean retorno = agendaAux.reiniciarTarefa(tarefas, codigo);
                                    if (retorno) 
                                    {
                                        System.out.println("A Tarefa foi alterada com sucesso.");
                                    } 
                                    else 
                                    {
                                        System.out.println("Não existe nenhuma Tarefa cadastrada com o codigo passado.");
                                    }
                                    continue;
                                } 
                                catch (SemTarefaException ex) 
                                {
                                    System.out.println(ex.getMessage());
                                } 
                                catch (SemMetodoException ex) 
                                {
                                    System.out.println(ex.getMessage());
                                }
                            }
                            else if(agenda instanceof AgendaVector)
                            {
                                try 
                                {
                                    AgendaVector agendaAux = new AgendaVector();
                                    agendaAux = (AgendaVector) agenda;
                                    System.out.println("Digite o codigo da Tarefa a ser alterada:");
                                    int codigo = s.nextInt();
                                    boolean retorno = agendaAux.reiniciarTarefa(tarefas, codigo);
                                    if (retorno) 
                                    {
                                        System.out.println("A Tarefa foi alterada com sucesso.");
                                    } 
                                    else 
                                    {
                                        System.out.println("Não existe nenhuma Tarefa cadastrada com o codigo passado.");
                                    }
                                    continue;
                                } 
                                catch (SemTarefaException ex) 
                                {
                                    System.out.println(ex.getMessage());
                                } 
                                catch (SemMetodoException ex) 
                                {
                                    System.out.println(ex.getMessage());
                                }
                            }
                        }
                        case 10: 
                        {
                            System.out.println("O programa foi finalizado com sucesso.");
                            continuar = false;
                            break;
                        }
                }
            }else{
                jDialogOptInvalida.setVisible(true);
            }
        }catch(Exception e){
            jDialogOptInvalida.setVisible(true);
        }
    }//GEN-LAST:event_btExecutarValidaOpt

    private void optProxArmazena(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_optProxArmazena
        // TODO add your handling code here:
        
        optArmazenamento = jCBOptDados.getSelectedIndex();
        switch(optArmazenamento){
            case 0:
                {
                    agendaArray = new Agenda();
                    try{
                        if(Integer.parseInt(jTFTamArray.getText()) > 0){
                            int qtdTarefas = Integer.parseInt(jTFTamArray.getText());
                            agendaArray.trataQtdTarefas(qtdTarefas);
                            jPanFinalizado.setEnabled(true);
                            jPanFinalizado.setFocusable(true);
                        }
                    }catch(Exception e){
                        jDialogAgendaArray.setVisible(true);
                    }
                }
            case 1:
                {
                    agenda = new AgendaVector();
                    jPanFinalizado.setEnabled(true);
                    jPanFinalizado.setFocusable(true);
                }
            case 2:
                {
                    agenda = new AgendaHash(); 
                    jPanFinalizado.setEnabled(true);
                    jPanFinalizado.setFocusable(true);
                }
            case 3:
                {
                    jPanOptDB.setEnabled(true);
                    jPanOptDB.setFocusable(true);
                }
        }
            
    }//GEN-LAST:event_optProxArmazena

    private void jBtProsseguir(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jBtProsseguir
        // TODO add your handling code here:        
            jTabPanelArmazenamento.setVisible(false);
            jPanOpcao.setVisible(true);
        
    }//GEN-LAST:event_jBtProsseguir

    private void jBtFecharApp(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jBtFecharApp
        // TODO add your handling code here:
        System.exit(1);
    }//GEN-LAST:event_jBtFecharApp

    private void optProxEscolhaDB(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_optProxEscolhaDB
        // TODO add your handling code here:
        jPanFinalizado.setEnabled(true);
        jPanFinalizado.setFocusable(true);
        optDBPostgre = jROptDBPostgre.isSelected();
        optDBMySQL = jROptDBMySQL.isSelected();
    }//GEN-LAST:event_optProxEscolhaDB

    private void validaOptAgenda(java.awt.event.ItemEvent evt) {//GEN-FIRST:event_validaOptAgenda
        // TODO add your handling code here:
        if(jCBOptDados.getSelectedIndex() == 0){
            jPanAgendaArray.setEnabled(true);
        }else{
             jPanAgendaArray.setEnabled(false);
        }        
    }//GEN-LAST:event_validaOptAgenda

    private void jBtOkAgendaArrayActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jBtOkAgendaArrayActionPerformed
        // TODO add your handling code here:
        jDialogAgendaArray.setVisible(false);
        jTabPanelArmazenamento.setVisible(true);
    }//GEN-LAST:event_jBtOkAgendaArrayActionPerformed

    private void opcaoInvalidaApp(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_opcaoInvalidaApp
        // TODO add your handling code here:
        jDialogOptInvalida.setVisible(false);
        jPanOpcao.setVisible(true);
    }//GEN-LAST:event_opcaoInvalidaApp

    private void addTarefa(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_addTarefa
        // TODO add your handling code here:
        optTarefaGerencial = jRTarefaGerencial.isSelected();
        optTarefaDesenv = jRTarefaDesenv.isSelected();
        optTarefaDesenvAuto = jRTarefaDesenvAuto.isSelected();      
        optConstrutor1 = jRConstrutor1.isSelected();     
        optConstrutor2 = jRConstrutor2.isSelected();
        try{
            if(optArmazenamento == 0){
                if(optTarefaGerencial)
                    opcaoTipoTarefa = 1;
                else if(optTarefaDesenv)
                    opcaoTipoTarefa = 2;
                else if(optTarefaDesenvAuto)
                    opcaoTipoTarefa = 3;
                if(optConstrutor1)
                    opcaoTarefa = 1;
                else if(optConstrutor2)
                    opcaoTarefa = 2;
                agendaArray.cadastrarTarefa(opcaoTipoTarefa, opcaoTarefa);
            }
            else if(optArmazenamento == 1){
                if(optTarefaGerencial)
                    opcaoTipoTarefa = 1;
                else if(optTarefaDesenv)
                    opcaoTipoTarefa = 2;
                else if(optTarefaDesenvAuto)
                    opcaoTipoTarefa = 3;
                if(optConstrutor1)
                    opcaoTarefa = 1;
                else if(optConstrutor2)
                    opcaoTarefa = 2;
                agenda.cadastrarTarefa(opcaoTipoTarefa, opcaoTarefa);
            }
            else if(optArmazenamento == 2){
                if(optTarefaGerencial)
                    opcaoTipoTarefa = 1;
                else if(optTarefaDesenv)
                    opcaoTipoTarefa = 2;
                else if(optTarefaDesenvAuto)
                    opcaoTipoTarefa = 3;
                if(optConstrutor1)
                    opcaoTarefa = 1;
                else if(optConstrutor2)
                    opcaoTarefa = 2;
                agenda.cadastrarTarefa(opcaoTipoTarefa, opcaoTarefa);
            }
            else if(optArmazenamento == 3){
                if(optDBPostgre){
                    dao = DAOFactory.getDAOFactory(DAOFactory.POSTGREE);
                }else if(optDBMySQL){
                    dao = DAOFactory.getDAOFactory(DAOFactory.MYSQL);
                }
                if(optTarefaGerencial)
                    opcaoTipoTarefa = 1;
                else if(optTarefaDesenv)
                    opcaoTipoTarefa = 2;
                else if(optTarefaDesenvAuto)
                    opcaoTipoTarefa = 3;
                if(optConstrutor1)
                    opcaoTarefa = 1;
                else if(optConstrutor2)
                    opcaoTarefa = 2;
                dao.cadastrarTarefa(opcaoTipoTarefa, opcaoTarefa);
            }
        }catch (LotadoException ex){
            System.out.println(ex.getMessage());
        }catch (ImportanciaException ex){
            System.out.println(ex.getMessage());
        }
    }//GEN-LAST:event_addTarefa

    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JButton btExecutar;
    private javax.swing.ButtonGroup btGroupOptConstrutor;
    private javax.swing.ButtonGroup btGroupOptDB;
    private javax.swing.ButtonGroup btGroupOptTarefa;
    private javax.swing.JButton jBtAddTarefa;
    private javax.swing.JButton jBtOkAgendaArray;
    private javax.swing.JButton jBtOkOptApp;
    private javax.swing.JButton jBtProsseguirApp;
    private javax.swing.JButton jButton2;
    private javax.swing.JComboBox jCBOptDados;
    private javax.swing.JDialog jDialogAgendaArray;
    private javax.swing.JDialog jDialogOptInvalida;
    private javax.swing.JFrame jFrameCadastro;
    private javax.swing.JInternalFrame jIFrameAgendaArray;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel10;
    private javax.swing.JLabel jLabel11;
    private javax.swing.JLabel jLabel12;
    private javax.swing.JLabel jLabel13;
    private javax.swing.JLabel jLabel14;
    private javax.swing.JLabel jLabel15;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JLabel jLabel4;
    private javax.swing.JLabel jLabel5;
    private javax.swing.JLabel jLabel6;
    private javax.swing.JLabel jLabel7;
    private javax.swing.JLabel jLabel8;
    private javax.swing.JLabel jLabel9;
    private javax.swing.JLabel jLabelMsg;
    private javax.swing.JLabel jLabelOpcao;
    private javax.swing.JLabel jLabelOpt1;
    private javax.swing.JLabel jLabelOpt10;
    private javax.swing.JLabel jLabelOpt2;
    private javax.swing.JLabel jLabelOpt3;
    private javax.swing.JLabel jLabelOpt4;
    private javax.swing.JLabel jLabelOpt5;
    private javax.swing.JLabel jLabelOpt6;
    private javax.swing.JLabel jLabelOpt7;
    private javax.swing.JLabel jLabelOpt8;
    private javax.swing.JLabel jLabelOpt9;
    private javax.swing.JLabel jLabelTitulo;
    private javax.swing.JLabel jLabelTituloDados1;
    private javax.swing.JLabel jLabelTituloOptDados1;
    private javax.swing.JMenuItem jMenuArmazenamento;
    private javax.swing.JPanel jPanAgendaArray;
    private javax.swing.JPanel jPanFinalizado;
    private javax.swing.JPanel jPanOpcao;
    private javax.swing.JPanel jPanOptDB;
    private javax.swing.JPanel jPanOptDados;
    private javax.swing.JPanel jPanPrincipal;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JPanel jPanel2;
    private javax.swing.JPanel jPanel3;
    private javax.swing.JPanel jPanel4;
    private javax.swing.JRadioButton jRConstrutor1;
    private javax.swing.JRadioButton jRConstrutor2;
    private javax.swing.JRadioButton jROptDBMySQL;
    private javax.swing.JRadioButton jROptDBPostgre;
    private javax.swing.JRadioButton jRTarefaDesenv;
    private javax.swing.JRadioButton jRTarefaDesenvAuto;
    private javax.swing.JRadioButton jRTarefaGerencial;
    private javax.swing.JSplitPane jSplitPane1;
    private javax.swing.JTextField jTFOpcao;
    private javax.swing.JTextField jTFTamArray;
    private javax.swing.JTabbedPane jTabPanelArmazenamento;
    private javax.swing.JMenuBar menuBar;
    private javax.swing.JButton optDBOk;
    private javax.swing.JMenuItem optDados;
    private javax.swing.JButton optDadosOk;
    private javax.swing.JMenuItem optPrincipal;
    private javax.swing.JProgressBar progressBar;
    private javax.swing.JLabel statusAnimationLabel;
    private javax.swing.JLabel statusMessageLabel;
    private javax.swing.JPanel statusPanel;
    private org.jdesktop.beansbinding.BindingGroup bindingGroup;
    // End of variables declaration//GEN-END:variables

    private final Timer messageTimer;
    private final Timer busyIconTimer;
    private final Icon idleIcon;
    private final Icon[] busyIcons = new Icon[15];
    private int busyIconIndex = 0;

    private JDialog aboutBox;
}
